DACSS 604 Final Project

Author

Theresa Szczepanski

Load Libraries

Code
# load the needed libraries

library(tidyverse)
library(ggplot2)
library(lubridate)
library(readxl)
library(hrbrthemes)
library(viridis)
library(ggpubr)
library(purrr)
library(plotly)
library(dplyr)
library(RColorBrewer)
library(stargazer)
knitr::opts_chunk$set(echo = TRUE, warning=FALSE, message=FALSE)
#source('readin_lib.R')
#source('student_perf_lib.R')

Load the Data

State Standards Mastery Summary

Code
ELA_Standards<-read_csv("data_604/State_Standards-_Mastery_Star_2425_ELA.csv")%>%
  mutate(Division = case_when(
    Grade == 9 | Grade == 10 ~ "HS",
    Grade == 5 | Grade == 6 | Grade == 7 | Grade == 8 ~ "MS"  
  ))%>%
  mutate(Grade = as.factor(Grade))%>%
  
  mutate(`Reporting Category` = as.factor(`Reporting Category`))%>%
  mutate(`Domain` = as.factor(`Domain`))%>%
  mutate(`Division` = as.factor(`Division`))%>%
  mutate(`Screening Window` = as.factor(`Screening Window`))%>%
mutate(`Text Type` = as.factor(`Text Type`))
  

ELA_Standards

Growth/Demographic Summary

Code
star_dem_all_private<-read_csv("data_604/student_star_dem_all_private.csv")%>%
  mutate(`Grade` = as.factor(`Grade`))%>%
  mutate(`Grade` = recode_factor(`Grade`,
                                              "5" = "5",
                                              "6" = "6",
                                              "7" = "7",
                                              "8"= "8",
                                              "9"= "9",
                                              "10"= "10",
                                              .ordered = TRUE))%>%
  mutate(School_Year = as.factor(School_Year))%>%
    mutate(School_Year_Fac = School_Year)%>%
   mutate(School_Year = recode_factor(School_Year,
                              "2023-2024" = "2023-2024",
                              "2024-2025" = "2024-2025",
                              .ordered = TRUE))%>%
  mutate(`Assignment Type` = as.factor(`Assignment Type`))%>%
  mutate(`Test 1 Benchmark Category` = recode_factor(`Test 1 Benchmark Category`,
                                              "At/Above Benchmark" = "At/Above Benchmark",
                                              "On Watch" = "On Watch",
                                              "Intervention" = "Intervention",
                                              "Urgent Intervention"= "Urgent Intervention",
                                              .ordered = TRUE))%>%
  mutate(IEP_Status = as.factor(IEP_Status))%>%
  mutate(`504_Status` = as.factor(`504_Status`))%>%
  mutate(`Low_Income_Status` = as.factor(Low_Income_Status))%>%
  mutate(`Gender` = as.factor(Gender) )%>%
  mutate(`Gender_Status` = case_when(
    Gender == "Male" ~ 0,
    Gender == "Female" ~ 1
  ))

star_dem_all_private

Historical Summary Data Frames

Code
HistSchoolBenchSum<-read_csv("data_604/StarBenchmarkSummary_School.csv")%>% 
  mutate(Year = as.factor(Year))%>%
  mutate(`Screening Window` = as.factor(`Screening Window`))%>%
  mutate(`Benchmark_Status` = recode_factor(`Benchmark_Status`,
                                              "At/Above Benchmark" = "At/Above Benchmark",
                                              "Below Benchmark" = "Below Benchmark",
                                              .ordered = TRUE))%>%
  select(Year, `Screening Window`, Subject, `Benchmark_Status`, `% Students`)

HistSchoolBenchSum
Code
HistGradeGrowthSum<-read_csv("data_604/StarBenchmarkSummary_SGP_Sum.csv")%>%
  mutate(Year = as.factor(Year))%>%
  mutate(`Screening Window` = as.factor(`Screening Window`))%>%
  mutate(`Subject` = as.factor(`Subject`))%>%
  mutate(`Grade_Fac` = as.factor(Grade))%>%
  mutate(`Grade` = as.factor(Grade))%>%
  mutate(`Grade` = recode_factor(`Grade`,
                                              "Grade 5" = "Grade 5",
                                              "Grade 6" = "Grade 6",
                                              "Grade 7" = "Grade 7",
                                              "Grade 8"= "Grade 8",
                                              "Grade 9"= "Grade 9",
                                              "Grade 10"= "Grade 10",
                                              .ordered = TRUE))%>%
  select(Year, `Screening Window`, `Grade`, Subject, `Median SGP`)


HistGradeGrowthSum

RQ1:

Are Rising Tide students making progress toward our achievement accountability goal: “80% of Rising Students will test as at or above Benchmark in Reading on the Renaissance Star Reading and Star Mathematics screening assessments.?

Historical Benchmark_Status

Code
star_dem_all_private<-star_dem_all_private%>%
  mutate(Benchmark_Status = 
           case_when(`Test 1 PR` >= 40 ~ "At/Above Benchmark",
                     `Test 1 PR` < 40 ~ "Below Benchmark"))%>%
  mutate(Benchmark_Status = as.factor(Benchmark_Status))

Statistical Test

Acheivement: Math

Code
star_dem_math<- star_dem_all_private%>%
  filter(`Assignment Type` == "Star Math")

star_dem_math
Code
fit_Math_achieve = lm(`Test 1 PR` ~ School_Year_Fac + `IEP_Status` + `504_Status` + `Low_Income_Status`, data = star_dem_math)

summary(fit_Math_achieve)

Call:
lm(formula = `Test 1 PR` ~ School_Year_Fac + IEP_Status + `504_Status` + 
    Low_Income_Status, data = star_dem_math)

Residuals:
    Min      1Q  Median      3Q     Max 
-59.329 -17.173   1.028  17.497  67.574 

Coefficients:
                         Estimate Std. Error t value Pr(>|t|)    
(Intercept)                64.173      1.245  51.531  < 2e-16 ***
School_Year_Fac2024-2025    4.157      1.472   2.824  0.00484 ** 
IEP_Status1               -32.747      1.730 -18.928  < 2e-16 ***
`504_Status`1              -1.826      2.296  -0.796  0.42649    
Low_Income_Status1         -6.454      1.645  -3.923 9.37e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 22.78 on 956 degrees of freedom
Multiple R-squared:  0.2929,    Adjusted R-squared:  0.2899 
F-statistic:    99 on 4 and 956 DF,  p-value: < 2.2e-16
Code
AIC(fit_Math_achieve)
[1] 8742.117
Code
BIC(fit_Math_achieve)
[1] 8771.324
Code
#star_dem_math

Acheivement: ELA

Code
star_dem_ELA<- star_dem_all_private%>%
  filter(`Assignment Type` == "Star Reading")
fit_ELA_achieve = lm(`Test 1 PR` ~ School_Year_Fac + `IEP_Status`, data = star_dem_ELA)

summary(fit_ELA_achieve)

Call:
lm(formula = `Test 1 PR` ~ School_Year_Fac + IEP_Status, data = star_dem_ELA)

Residuals:
    Min      1Q  Median      3Q     Max 
-58.281 -19.490   0.346  19.346  61.510 

Coefficients:
                         Estimate Std. Error t value Pr(>|t|)    
(Intercept)                58.654      1.189   49.35  < 2e-16 ***
School_Year_Fac2024-2025    4.627      1.553    2.98  0.00296 ** 
IEP_Status1               -26.164      1.783  -14.67  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 24.1 on 961 degrees of freedom
Multiple R-squared:  0.1884,    Adjusted R-squared:  0.1868 
F-statistic: 111.6 on 2 and 961 DF,  p-value: < 2.2e-16
Code
AIC(fit_ELA_achieve)
[1] 8876.38
Code
BIC(fit_ELA_achieve)
[1] 8895.864

Visual: RQ1

Code
Bench_Sum_Plot<-HistSchoolBenchSum%>%
  filter(`Year` == "2024-2025" & `Screening Window` == "Winter" | `Year` == "2023-2024" & `Screening Window` == "Spring")%>%
  filter(`Benchmark_Status` == "At/Above Benchmark")%>%
  ggplot(aes(x=`Benchmark_Status`,fill = `Year`, y = `% Students`)) +
  geom_bar(position="dodge", stat = "identity") +
    geom_text(aes( y = `% Students`, label = `% Students`,
                     vjust = -.25), position = position_dodge(width = 1)) +

          #theme_classic() +
  theme(axis.title.x=element_blank(),
       #  axis.text.x = element_text(angle = 45, , hjust = 1),
          axis.ticks.x=element_blank())+
    scale_fill_brewer(palette = "Paired")+
    labs(
      y = "% Students",
       x= "Benchmark Category",
      title = "Rising Tide Benchmark Achievement by School Year",
      caption = "Source: Renaissance Star Literacy and Math Screening")+
  geom_hline(yintercept = 80, color = "grey")+
  #annotate("text", x = .75, y = 85, label = "80% Goal")# +
  facet_wrap(~Subject)
Code
#| eval: false
#| fig-cap: "Rising Tide Benchmark Achievement by School Year, Renaissance Star Literacy and Math"
#| fig-alt: >
#|    A bar blot with school year (ordered, factor) on the x-axis and the percentage of students
#|    classified as At/Above benchmark on the y-axis, faceted by subject (English Language Arts or Math)
#|    Plot illustrates the relationship between the three variables.

Bench_Sum_Plot

Subject Level Fall Winter Growth Comparison

ELA Growth

Code
Growth_Sum_ELA<-star_dem_all_private%>%
  filter(`School_Year` == "2024-2025")%>%
  filter(`Assignment Type` == "Star Reading")%>%
  group_by(Grade)%>%
  summarize(median_SGP= median(`SGP (Expectation=50)`))

Growth_Sum_ELA_Plot<-ggplot(Growth_Sum_ELA, aes(x=`Grade`, y = `median_SGP`,fill="skyblue")) +
    geom_bar(position="dodge", stat = "identity", fill="skyblue") +
    #facet_wrap(~Grade)+
    geom_text(aes( y = `median_SGP`, label = `median_SGP`,
                   vjust = -.25))+
  theme_classic()+
    #scale_color_brewer(palette = "Blues")+
    theme(axis.title.x=element_blank(),
          #axis.text.x=element_blank(),
          axis.ticks.x=element_blank())+
    labs(
      y = "Median SGP",
       x= "Grade Level",
      title = "Literacy Student Growth Percentile by Grade Level",
      caption = "Source: 2024-2025 Renaissance Star Screening")+
   geom_hline(yintercept = 50, color = "grey")+
  annotate("text", x = 1., y = 52, label = "50th Percentile")
Code
Growth_Sum_ELA_Plot

ELA Historical Growth

Code
Hist_Growth_Sum_ELA_Plot<-HistGradeGrowthSum%>%
  filter(Subject == "ELA")%>%
  filter(`Screening Window` == "Fall-Winter")%>%
  ggplot(aes(x=`Grade`,fill = "skyblue", y = `Median SGP`)) +
    geom_bar(position="dodge", stat = "identity", fill = "skyblue") +
    #facet_wrap(~Grade)+
    geom_text(aes( y = `Median SGP`, label = `Median SGP`,
                   vjust = -.25), position = position_dodge(width = 1))+
  #theme_classic()+
    #scale_fill_brewer(palette = "Blues")+
    theme(axis.title.x=element_blank(),
          #axis.text.x=element_blank(),
          axis.ticks.x=element_blank())+
    labs(
      y = "Median SGP",
       x= "Grade Level",
      title = "Literacy Student Growth Percentile by Grade Level",
      caption = "Source: Renaissance Star Literacy Screening")+
   geom_hline(yintercept = 50, color = "grey")+
  annotate("text", x = 1.55, y = 52, label = "50th Percentile")+
  facet_wrap(~Year)
Code
Hist_Growth_Sum_ELA_Plot

A bar blot with Grade level (ordered, factor) on the x-axis and the median student growth percentile (SGP) in literacy on the y-axis, faceted by school year (ordered, factor). Plot illustrates the relationship between the three variables.

Rising Tide Literacy Growth by Grade Level, school year 2024-2025 and 2023-2024, Renaissance Star Literacy Screening

Math Growth

Code
Growth_Sum_Math<-star_dem_all_private%>%
  filter(`Assignment Type` == "Star Math")%>%
  filter(`School_Year` == "2024-2025")%>%
  group_by(Grade)%>%
  summarize(median_SGP= median(`SGP (Expectation=50)`))

Growth_Sum_Math_Plot<-ggplot(Growth_Sum_Math, aes(x=`Grade`,fill = `Grade`, y = `median_SGP`, fill="skyblue")) +
    geom_bar(position="dodge", stat = "identity", fill="skyblue") +
    #facet_wrap(~Grade)+
    geom_text(aes( y = `median_SGP`, label = `median_SGP`,
                   vjust = -.25))+
  theme_classic()+
    scale_fill_brewer(palette = "Blues")+
    theme(axis.title.x=element_blank(),
           axis.text.x=element_blank(),
          axis.ticks.x=element_blank())+
    labs(
      y = "Median SGP",
       x= "Grade Level",
      title = "Math Student Growth Percentile by Grade Level",
      caption = "Source: 2024-2025 Renaissance Star Math Screening")+
   geom_hline(yintercept = 50, color = "grey")+
  annotate("text", x = 1.05, y = 53, label = "50th Percentile")
Code
Growth_Sum_Math_Plot
Code
Hist_Growth_Sum_Math_Plot<-HistGradeGrowthSum%>%
  filter(Subject == "Math")%>%
  filter(`Screening Window` == "Fall-Winter")%>%
  ggplot(aes(x=`Grade`,fill = "skyblue", y = `Median SGP`)) +
    geom_bar(position="dodge", stat = "identity", fill = "skyblue") +
    #facet_wrap(~Grade)+
    geom_text(aes( y = `Median SGP`, label = `Median SGP`,
                   vjust = -.25), position = position_dodge(width = 1))+
  #theme_classic()+
    #scale_fill_brewer(palette = "Blues")+
    theme(axis.title.x=element_blank(),
          #axis.text.x=element_blank(),
          axis.ticks.x=element_blank())+
    labs(
      y = "Median SGP",
       x= "Grade Level",
      title = "Math Student Growth Percentile by Grade Level",
      caption = "Source: Renaissance Star Math Screening")+
   geom_hline(yintercept = 50, color = "grey")+
  annotate("text", x = 5.5, y = 48, label = "50th Percentile")+
  facet_wrap(~Year)
Code
Hist_Growth_Sum_Math_Plot

RQ2 Grade 5 Math

Is there a relationship between Rising Tide’s Grade 5 Mathematics curriculum initiatives and Grade 5 student growth in mathematics?

Summary Data Frames

Code
Math_IEP_Sum<-star_dem_math%>%
  mutate(IEP = case_when(IEP_Status == 1 ~ "Yes",
                         IEP_Status == 0 ~ "No"))%>%
  filter(`Assignment Type` == "Star Math")%>%
  group_by(Grade, `School_Year`, IEP)%>%
  summarize(`Median SGP` = median(`SGP (Expectation=50)`))

Visual: Growth Distribution

Code
MathHistGrowth<- star_dem_math

G5MathHistGrowth<-star_dem_math%>%
  filter(Grade == "5")

G5_Hist_Year <- G5MathHistGrowth %>%
  ggplot( aes(x=`SGP (Expectation=50)`, fill=School_Year)) +
    geom_histogram( color="#e9ecef", alpha=0.6,binwidth=10, position = 'identity') +
    scale_fill_manual(values=c("#69b3a2", "#404080")) +
    theme_classic() +
    labs(fill="")#+
 # facet_wrap(~Year)

G5_Hist_Year

Code
G5_Hist_Year_Facet <- G5MathHistGrowth %>%
  ggplot( aes(x=`SGP (Expectation=50)`, fill=School_Year)) +
    geom_histogram( color="#e9ecef", alpha=0.6,binwidth=15, position = 'identity') +
    scale_fill_manual(values=c("#69b3a2", "#404080")) +
    theme_classic() +
    labs(fill="")+
  labs( y = "",
            title = "Grade 5 Student Growth Distribution",
            x = "Student Growth Percentile (SGP)",
            caption = "Star Math Assessments")+
  facet_wrap(~School_Year)

G5_Hist_Year_Facet

Code
Growth_Hist<-MathHistGrowth%>%
  ggplot( aes(x= `SGP (Expectation=50)`)) +
    #geom_histogram(alpha=0.6, binwidth = 15) +
  
  #ggplot(aes()+
           geom_histogram(alpha = .9, binwidth = 15)+
    #scale_fill_viridis(discrete=TRUE) +
    #scale_color_viridis(discrete=TRUE) +
  theme_classic()

Growth_Hist

Statistical Tests

Code
#summary(MathHistGrowth)

G5MathHistGrowth<-G5MathHistGrowth%>%
  mutate(School_Year_Factor = case_when(
        School_Year == "2023-2024" ~ "2023-2024",
        School_Year == "2024-2025" ~ "2024-2025"))%>%
  mutate(School_Year_Factor = as.factor(School_Year_Factor))%>%
  mutate(School_Year_Bool = case_when(
    `School_Year` == "2023-2024" ~ 0,
    `School_Year` == "2024-2025" ~ 1
  ))



fit_G5Math_growth_dem = lm(`SGP (Expectation=50)` ~ School_Year_Factor + `IEP_Status` + `Low_Income_Status` + `504_Status` + `Test 1 PR`, data = G5MathHistGrowth)
summary(fit_G5Math_growth_dem)

Call:
lm(formula = `SGP (Expectation=50)` ~ School_Year_Factor + IEP_Status + 
    Low_Income_Status + `504_Status` + `Test 1 PR`, data = G5MathHistGrowth)

Residuals:
   Min     1Q Median     3Q    Max 
-56.13 -25.43  -0.01  27.66  53.29 

Coefficients:
                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  51.06482    7.30772   6.988 5.97e-11 ***
School_Year_Factor2024-2025  13.82626    4.57343   3.023  0.00289 ** 
IEP_Status1                 -17.00046    6.14880  -2.765  0.00632 ** 
Low_Income_Status1           -3.28838    4.97102  -0.662  0.50918    
`504_Status`1                -0.77230    6.88859  -0.112  0.91086    
`Test 1 PR`                  -0.08415    0.09742  -0.864  0.38889    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 29.99 on 171 degrees of freedom
Multiple R-squared:  0.09237,   Adjusted R-squared:  0.06583 
F-statistic:  3.48 on 5 and 171 DF,  p-value: 0.005071
Code
AIC(fit_G5Math_growth_dem)
[1] 1714.086
Code
BIC(fit_G5Math_growth_dem)
[1] 1736.319
Code
stargazer(fit_G5Math_growth_dem, type = "text") 

=======================================================
                                Dependent variable:    
                            ---------------------------
                              `SGP (Expectation=50)`   
-------------------------------------------------------
School_Year_Factor2024-2025          13.826***         
                                      (4.573)          
                                                       
IEP_Status1                         -17.000***         
                                      (6.149)          
                                                       
Low_Income_Status1                    -3.288           
                                      (4.971)          
                                                       
`504_Status`1                         -0.772           
                                      (6.889)          
                                                       
`Test 1 PR`                           -0.084           
                                      (0.097)          
                                                       
Constant                             51.065***         
                                      (7.308)          
                                                       
-------------------------------------------------------
Observations                            177            
R2                                     0.092           
Adjusted R2                            0.066           
Residual Std. Error              29.988 (df = 171)     
F Statistic                   3.480*** (df = 5; 171)   
=======================================================
Note:                       *p<0.1; **p<0.05; ***p<0.01

Diagnosing Model Fit

Code
plot(fit_G5Math_growth_dem, which = 1:6)

Code
cooks= 4/179
cooks #.0223
[1] 0.02234637

Visual G5 Math Growth

Code
Hist_Growth_Sum_G5Math_Plot<-HistGradeGrowthSum%>%
  filter(Subject == "Math")%>%
  filter(`Screening Window` == "Fall-Winter")%>%
  ggplot(aes(x=`Grade`,fill = ifelse(Grade == "5", "A", "B"), y = `Median SGP`)) +
    geom_bar(position="dodge", stat = "identity", show.legend=FALSE) +
    scale_fill_manual(values = c(A= "skyblue", B = "grey"))+
    #facet_wrap(~Grade)+
    geom_text(aes( y = `Median SGP`, label = `Median SGP`,
                   vjust = -.25), position = position_dodge(width = 1))+
  #theme_classic()+
    #scale_fill_brewer(palette = "Blues")+
    theme(axis.title.x=element_blank(),
          #axis.text.x=element_blank(),
          axis.ticks.x=element_blank())+
    labs(
      y = "Median SGP",
       x= "Grade Level",
      title = "Math Student Growth Percentile by Grade Level",
      caption = "Source: Renaissance Star Math Screening")+
   geom_hline(yintercept = 50, color = "grey")+
  #annotate("text", x = 5.5, y = 48, label = "50th Percentile")+
  facet_wrap(~Year)
Code
Hist_Growth_Sum_G5Math_Plot

A bar blot with Grade level (ordered, factor) on the x-axis and the median student growth percentile (SGP) in math on the y-axis, faceted by school year (ordered, factor). Plot illustrates the relationship between the three variables.

Rising Tide Math Growth by Grade Level, school year 2024-2025 and 2023-2024, Renaissance Star Math Screening
Code
Hist_Growth_G5Math_Plot<-HistGradeGrowthSum%>%
  filter(Subject == "Math")%>%
  filter(Grade == "5")%>%
  filter(`Screening Window` == "Fall-Winter")%>%
  ggplot(aes(x=`Year`,fill = "skyblue", y = `Median SGP`)) +
    geom_bar(position="dodge", stat = "identity", fill = "skyblue") +
    #facet_wrap(~Grade)+
    geom_text(aes( y = `Median SGP`, label = `Median SGP`, 
                   vjust = -.25), position = position_dodge(width = 1))+
  theme_classic()+
    scale_fill_brewer(palette = "Paired")+
    theme(axis.title.x=element_blank(),
          #axis.text.x=element_blank(),
          axis.ticks.x=element_blank())+
    labs(
      y = "Median SGP",
       x= "School Year",
      title = "Improvement in Grade 5 Student Growth Percentile",
      caption = "Source: Renaissance Star Math Screening")+
   geom_hline(yintercept = 50, color = "grey")+
  annotate("text", x = 1., y = 52, label = "Goal 50th Percentile")#+
  #theme_classic()
  #facet_wrap(~Year)
Code
Hist_Growth_G5Math_Plot

A bar blot with school year (ordered, factor) on the x-axis and the median G5 student growth percentile (SGP) in math on the y-axis. Plot illustrates the relationship between the two variables.

Rising Tide Grade 5 Math Growth by school year 2024-2025 and 2023-2024, Renaissance Star Math Screening

Visual G5 IEP Growth

Code
 IEP_Growth_G5Math_Plot<- Math_IEP_Sum%>%
  filter(Grade == "5")%>%
  ggplot(aes(x=`IEP`,fill = `School_Year`, y = `Median SGP`)) +
      geom_bar(position="dodge", stat = "identity") +
      geom_text(aes( y = `Median SGP`, x = `IEP`, label = `Median SGP`), position = position_dodge(width=.9),
                   vjust = 1)+
  theme_classic()+
      theme(#axis.title.x=element_blank(),
            #axis.text.x=element_blank(),
           # axis.text.x=element_text(angle =45, hjust = 1),
            axis.ticks.x=element_blank())+
      scale_fill_brewer(palette = "Paired")+
      
 # facet_wrap(~`Screening Window`)+
      labs(
        y = "Median SGP",
         x= "IEP Status",
        title = "Improved Growth For All Grade 5 Learners",
        caption = "Source: Renaissance Star Math Screening")+
   geom_hline(yintercept = 50, color = "grey")+
  annotate("text", x =.70, y = 52, label = "50th Percentile")#+
Code
IEP_Growth_G5Math_Plot

A clustered, bar blot with IEP status (ordered, factor) on the x-axis and the median G5 student growthpercentile (SGP) in math on the y-axis. Bars are colored by the school year (ordered, factor) Plot illustrates the relationship between the three variables.

Rising Tide Grade 5 Math Growth by disability status (IEP) and school year 2024-2025 and 2023-2024, Renaissance Star Math Screening

RQ 3: ELA State Standards Mastery

Is there a relationship between the text type of a literacy standard (informational vs. literature) and Rising Tide High School students’ mastery of the standard?

##Visual: Distribution ELA Standards Mastery

Code
HS_ELA_Standards<-ELA_Standards%>%
  filter(Grade == 9|Grade == 10)%>%
  filter(`Text Type` == "Informational Text" | `Text Type` == "Literature")
HS_ELA_Standards
Code
HS_ELA_Text_Facet <- HS_ELA_Standards %>%
  ggplot( aes(x=`% Secure`, fill=`Text Type`)) +
    geom_histogram( color="#e9ecef", alpha=0.6,binwidth=15, position = 'identity') +
    scale_fill_manual(values=c("#69b3a2", "#404080")) +
    theme_classic() +
   
  labs( y = "",
            title = "High School State Standard Mastery Distribution",
            x = "% Students Secure",
            caption = "Star Reading: State Standards Mastery")+
  facet_wrap(~`Text Type`)

HS_ELA_Text_Facet

Statistical Tests

Code
fit_ELA_text = lm(`% Secure` ~ ( `Text Type` + `Screening Window` + `Domain`), data = ELA_Standards)
summary(fit_ELA_text)

Call:
lm(formula = `% Secure` ~ (`Text Type` + `Screening Window` + 
    Domain), data = ELA_Standards)

Residuals:
    Min      1Q  Median      3Q     Max 
-40.934  -8.667   2.097   8.740  34.360 

Coefficients:
                                                    Estimate Std. Error t value
(Intercept)                                           47.593      1.932  24.631
`Text Type`Literature                                  4.294      1.707   2.515
`Screening Window`Winter                               6.658      1.698   3.920
DomainIntegration of Knowledge and Ideas               4.310      2.248   1.917
DomainKey Ideas and Details                            2.458      2.137   1.150
DomainRange of Reading and Level of Text Complexity   -4.611      3.022  -1.526
                                                    Pr(>|t|)    
(Intercept)                                          < 2e-16 ***
`Text Type`Literature                               0.012609 *  
`Screening Window`Winter                            0.000118 ***
DomainIntegration of Knowledge and Ideas            0.056484 .  
DomainKey Ideas and Details                         0.251263    
DomainRange of Reading and Level of Text Complexity 0.128519    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 12.82 on 222 degrees of freedom
  (309 observations deleted due to missingness)
Multiple R-squared:  0.121, Adjusted R-squared:  0.1012 
F-statistic:  6.11 on 5 and 222 DF,  p-value: 2.523e-05
Code
fit_HS_ELA_text_domain = lm(`% Secure` ~ ( `Text Type` + `Screening Window` + `Domain`), data = HS_ELA_Standards)
summary(fit_HS_ELA_text_domain)

Call:
lm(formula = `% Secure` ~ (`Text Type` + `Screening Window` + 
    Domain), data = HS_ELA_Standards)

Residuals:
    Min      1Q  Median      3Q     Max 
-28.378  -8.155  -1.182   7.971  40.030 

Coefficients:
                                                    Estimate Std. Error t value
(Intercept)                                           39.314      3.175  12.382
`Text Type`Literature                                  8.840      2.806   3.151
`Screening Window`Winter                               4.947      2.791   1.773
DomainIntegration of Knowledge and Ideas               7.276      3.694   1.970
DomainKey Ideas and Details                            1.708      3.512   0.486
DomainRange of Reading and Level of Text Complexity    3.417      4.967   0.688
                                                    Pr(>|t|)    
(Intercept)                                           <2e-16 ***
`Text Type`Literature                                 0.0024 ** 
`Screening Window`Winter                              0.0806 .  
DomainIntegration of Knowledge and Ideas              0.0528 .  
DomainKey Ideas and Details                           0.6282    
DomainRange of Reading and Level of Text Complexity   0.4938    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 12.17 on 70 degrees of freedom
  (38 observations deleted due to missingness)
Multiple R-squared:  0.1886,    Adjusted R-squared:  0.1307 
F-statistic: 3.255 on 5 and 70 DF,  p-value: 0.01063
Code
AIC(fit_HS_ELA_text_domain)
[1] 603.2177
Code
BIC(fit_HS_ELA_text_domain)
[1] 619.5328
Code
stargazer(fit_ELA_text, type = "text")

===============================================================================
                                                        Dependent variable:    
                                                    ---------------------------
                                                            `% Secure`         
-------------------------------------------------------------------------------
`Text Type`Literature                                         4.294**          
                                                              (1.707)          
                                                                               
`Screening Window`Winter                                     6.658***          
                                                              (1.698)          
                                                                               
DomainIntegration of Knowledge and Ideas                      4.310*           
                                                              (2.248)          
                                                                               
DomainKey Ideas and Details                                    2.458           
                                                              (2.137)          
                                                                               
DomainRange of Reading and Level of Text Complexity           -4.611           
                                                              (3.022)          
                                                                               
Constant                                                     47.593***         
                                                              (1.932)          
                                                                               
-------------------------------------------------------------------------------
Observations                                                    228            
R2                                                             0.121           
Adjusted R2                                                    0.101           
Residual Std. Error                                      12.823 (df = 222)     
F Statistic                                           6.110*** (df = 5; 222)   
===============================================================================
Note:                                               *p<0.1; **p<0.05; ***p<0.01
Code
stargazer(fit_HS_ELA_text_domain, type = "text")

===============================================================================
                                                        Dependent variable:    
                                                    ---------------------------
                                                            `% Secure`         
-------------------------------------------------------------------------------
`Text Type`Literature                                        8.840***          
                                                              (2.806)          
                                                                               
`Screening Window`Winter                                      4.947*           
                                                              (2.791)          
                                                                               
DomainIntegration of Knowledge and Ideas                      7.276*           
                                                              (3.694)          
                                                                               
DomainKey Ideas and Details                                    1.708           
                                                              (3.512)          
                                                                               
DomainRange of Reading and Level of Text Complexity            3.417           
                                                              (4.967)          
                                                                               
Constant                                                     39.314***         
                                                              (3.175)          
                                                                               
-------------------------------------------------------------------------------
Observations                                                    76             
R2                                                             0.189           
Adjusted R2                                                    0.131           
Residual Std. Error                                      12.166 (df = 70)      
F Statistic                                            3.255** (df = 5; 70)    
===============================================================================
Note:                                               *p<0.1; **p<0.05; ***p<0.01

Visual Mastery by Text Type

SchoolWide

Code
#ELA_Standards

ELA_Text_Summary<-ELA_Standards%>%
  filter(`Reporting Category` == "Reading")%>%
   group_by(`Text Type`, `Screening Window`)%>%
  summarize(`Mean % Secure` = round(mean(`% Secure`)),
            `Median % Secure` = round(median(`% Secure`)))

#ELA_Text_Summary

ELA_Text_Summary%>%
  filter(`Screening Window` != "Spring")%>%
  ggplot(aes(x=`Text Type`,fill = `Text Type`, y = `Mean % Secure`)) +
      geom_bar(position="dodge", stat = "identity") +
      geom_text(aes( y = `Mean % Secure`, x = `Text Type`, label = `Mean % Secure`), position = position_dodge(width=.9),
                   vjust = 1)+
      theme(axis.title.x=element_blank(),
            #axis.text.x=element_blank(),
            axis.text.x=element_text(angle =45, hjust = 1),
            axis.ticks.x=element_blank())+
      scale_fill_brewer(palette = "Paired")+
      
  facet_wrap(~`Screening Window`)+
      labs(
        y = "Mean % Secure",
         x= "Domainl",
        title = "School State Standard Mastery by Text Type ELA",
        caption = "2024-2025 Star Reading Screening")

Code
ELA_Text_Domain_Summary<-ELA_Standards%>%
  filter(`Reporting Category` == "Reading")%>%
   group_by(`Text Type`, `Domain`, `Screening Window`)%>%
  summarize(`Mean % Secure` = round(mean(`% Secure`)),
            `Median % Secure` = round(median(`% Secure`)))

#ELA_Text_Domain_Summary

ELA_Text_Div_Summary<-ELA_Standards%>%
  filter(`Reporting Category` == "Reading")%>%
   group_by(`Text Type`, `Division`, `Screening Window`)%>%
  summarize(`Mean % Secure` = round(mean(`% Secure`)),
            `Median % Secure` = round(median(`% Secure`)))

#ELA_Text_Div_Summary

MS vs. HS

Code
ELA_Text_Div_Summary%>%
  filter(`Screening Window` != "Spring")%>%
  ggplot(aes(x=`Text Type`,fill = `Screening Window`, y = `Mean % Secure`)) +
      geom_bar(position="dodge", stat = "identity") +
      geom_text(aes( y = `Mean % Secure`, x = `Text Type`, label = `Mean % Secure`), position = position_dodge(width=.9),
                   vjust = 1)+
      theme(axis.title.x=element_blank(),
            #axis.text.x=element_blank(),
            axis.text.x=element_text(angle =45, hjust = 1),
            axis.ticks.x=element_blank())+
      scale_fill_brewer(palette = "Paired")+
      
  facet_wrap(~`Division`)+
      labs(
        y = "Mean % Secure",
         x= "Domainl",
        title = "School State Standard Mastery by Text Type ELA",
        caption = "2024-2025 Star Reading Screening")

By Domain Cluster

Code
ELA_Text_Domain_Summary%>%
  filter(`Screening Window` != "Spring")%>%
  ggplot(aes(x=`Domain`,fill = `Text Type`, y = `Mean % Secure`)) +
      geom_bar(position="dodge", stat = "identity") +
      geom_text(aes( y = `Mean % Secure`, x = `Domain`, label = `Mean % Secure`), position = position_dodge(width=.9),
                   vjust = 1)+
      theme(axis.title.x=element_blank(),
            #axis.text.x=element_blank(),
            axis.text.x=element_text(angle =45, hjust = 1),
            axis.ticks.x=element_blank())+
      scale_fill_brewer(palette = "Paired")+
      
  facet_wrap(~`Screening Window`)+
      labs(
        y = "Mean % Secure",
         x= "Domainl",
        title = "School State Standard Mastery by Text Type ELA",
        caption = "2024-2025 Star Reading Screening")

Visual: HS Informational Text vs. Literature Comparison

Code
ELA_Standards
Code
ELA_TextType_Sum_HS<-ELA_Standards%>%
  filter(`Division` == "HS")%>%
  filter (`Screening Window` != "Spring")%>%
  filter(`Reporting Category` == "Reading")%>%
  group_by(`Screening Window`, Grade, `Text Type`)%>%
  summarize(`Median % Secure` = round(median(`% Secure`)))


 ELA_TextType_Sum_HS%>%
  ggplot(aes(x=`Text Type`,fill = `Screening Window`, y = `Median % Secure`)) +
  geom_bar(position="dodge", stat = "identity") +
  #scale_x_reverse()+
    geom_text(aes( y = `Median % Secure`, label = `Median % Secure`,
                     vjust = -.25), position = position_dodge(width = 1)) +

          #theme_classic() +
  theme(axis.title.x=element_blank(),
         # axis.text.x=element_blank(),
          axis.ticks.x=element_blank())+
    scale_fill_brewer(palette = "Paired")+
    labs(
      y = "Median % Secure",
       x= "Text Type",
      title = "HS Reading Standards Mastery by Text Type",
      caption = paste("Fall-Winter Screening", "2024-2025"))+
   facet_wrap(~Grade)

Visual: MS Informational Text vs. Literature Mastery: Fall-Winter

Code
ELA_TextType_Sum_MS<-ELA_Standards%>%
  filter(`Division` == "MS")%>%
  filter (`Screening Window` != "Spring")%>%
  filter(`Reporting Category` == "Reading")%>%
  group_by(`Screening Window`, Grade, `Text Type`)%>%
  summarize(`Median % Secure` = round(median(`% Secure`)))


 ELA_TextType_Sum_MS%>%
  ggplot(aes(x=`Text Type`,fill = `Screening Window`, y = `Median % Secure`)) +
  geom_bar(position="dodge", stat = "identity") +
  #scale_x_reverse()+
    geom_text(aes( y = `Median % Secure`, label = `Median % Secure`,
                     vjust = -.25), position = position_dodge(width = 1)) +

          #theme_classic() +
  theme(axis.title.x=element_blank(),
         # axis.text.x=element_blank(),
          axis.ticks.x=element_blank())+
    scale_fill_brewer(palette = "Paired")+
    labs(
      y = "Median % Secure",
       x= "Text Type",
      title = "MS Reading Standards Mastery by Text Type",
      caption = paste("Fall-Winter Screening", "2024-2025"))+
   facet_wrap(~Grade)